package hu.elte.tudaskezelo.dbpedialike.views;

import java.util.ArrayList;

import roboguice.inject.InjectView;
import roboguice.activity.RoboActivity;

import hu.elte.tudaskezelo.dbpedialike.R;
import hu.elte.tudaskezelo.dbpedialike.domain.FullInformation;
import hu.elte.tudaskezelo.dbpedialike.ws.SPARQLQuery;

import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;

import com.google.inject.Inject;
import com.google.inject.Singleton;

@Singleton
public class QueryViewFactory extends RoboActivity { 
	
	/**
	 * ez tárolja az adatokat
	 */
	private FullInformation fullInformation;

	/**
	 * innét kérdezi le az adatokat
	 */
	@Inject
	public SPARQLQuery sparqlQuery;
		
	/**
	 * Eg nézetet ad vissza ami tartalmazza az összes adatot egy adott erőforásnak
	 * <p> Jeleleg egy listviewbe tölti be az adatokat, de elővan készítve a fejlesztésre
	 *                    
	@param  longitude a hosszusági fok ami azonosítja az erőforrást
	 *                        
	@param  latitude  a széllegségi fok ami azonosítja az erőforrást
	 *
	@param  type a tipus ami meghatáozza milyen erőforrás kell az adott pontba a sok féle közül
	 * 
 	@param  lang sok info több nyelven található ezért érdemes adott nyelvre szűrni
	 *                        
	@return  nézetet ami tartalmazza az összesadatot egy erőforásról
	 *  
	 */
	View renderData(double longitude, double latitude, String type, String lang  ){
		
		fullInformation = sparqlQuery.fullinfoQuery(longitude,latitude,type,lang);
		// create view		
	    View myview = findViewById(R.layout.res_info);
	    int listItem = android.R.layout.simple_list_item_1;
	    // TO-DO
	    // ezek majd következő fázisba lesznek aktuálisak
	    //TextView name = (TextView) myview.findViewById(R.id.Name);
	    //TextView desc = (TextView) myview.findViewById(R.id.TextDesc);	    
	    ListView egyebInfo = (ListView) myview.findViewById(R.id.Egyeb);
	    // Adat betöltése    
		ArrayList<String> list = new ArrayList<String>();
		list = fullInformation.getOther();
		// TO-DO
		// ezek majd következő fázisba lesznek aktuálisak 
		//name.setText("Name: " + fullInformation.getName() + "(" + fullInformation.getType() + ")" );
		//desc.setText("Desc:" + fullInformation.getDescription() );
		//
		// adapterrel feltölti a listview-t
		egyebInfo.setAdapter( new ArrayAdapter<String>(QueryViewFactory.this,listItem,list));
		//
		return myview;
	}
	
}
